package com.wyw.design.model.learning.structure.bridging;

/**
 * @Title   改善后的抽象化，或者叫补充抽象类（RefinedAbstraction）
 * @Description 该角色用于补充 Abstraction 功能而存在，通常情况下不再是抽象类而是具体的实现类
 *              在内部可以直接调用 Implementor 中的业务方法
 * @Author Mr Wu yewen.wu.china@gmail.com
 * Update History:
 * Author        Time            Content
 */
public class HuaWeiMobilePhone extends MobilePhoneAbstraction{

    public HuaWeiMobilePhone(SoftImplementor impl) {
        super(impl);
    }

    @Override
    public void run() {
        // 使用委托：调用HuaWeiMobilePhone的run时，实际调用的是SoftImplementor的rawrun
        this.impl.rawrun();
    }

    public void gpuTurborRun(){
        System.out.println("HuaWei GPU Turbo Running start...");
        this.run();
        System.out.println("HuaWei GPU Turbo Running end...");
    }
}
